package com.javakc.mes.basis.roadway.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.javakc.mes.basis.area.entity.Area;
import com.javakc.mes.basis.mine.entity.MaintainMine;
import com.javakc.mes.basis.section.entity.Section;
import lombok.*;
import org.hibernate.validator.constraints.Length;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;

import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
@Setter
@Getter
@Table(name = "maintain_roadway")
@Entity
public class Roadway {
    /** 主键 */
    @Id
    @GeneratedValue
    private int id ;
    /** 巷道名称 */
    @NotBlank(message = "巷道名称不能为空")
    @Length(min = 2,max = 60,message = "巷道名称的长度必须在{min}-{max}之间")
    private String roadwayName ;
    /** 巷道类别 */
    @NotNull(message = "巷道类别不能为空")
    private Integer roadwayType ;
    /** 位置 */
    @NotBlank(message = "巷道位置不能为空")
    @Length(min = 2,max = 60,message = "巷道位置名称长度必须在{min}-{max}之间")
    private String roadwayLocation ;
    /** 掘进方式 */
    @NotNull(message = "掘进方式不能为空")
    private Integer grabType ;
    /** 支护方法 */
    @NotNull(message = "支护方法不能为空")
    private Integer supportType ;
    /** 岩性 */
    @NotNull(message = "岩性不能为空")
    private Integer lithology ;
    /** 设计总长 */
    @NotNull(message = "设计总长不能为空")
    private BigDecimal designLong ;
    /** 净宽 */
    @NotNull(message = "净宽不能为空")
    private BigDecimal witch ;
    /** 净高 */
    @NotNull(message = "净高不能为空")
    private BigDecimal high ;
    /** 掘进断面 */
    @NotNull(message = "掘进断面不能为空")
    private BigDecimal grabSpace ;
    /** 备注 */
    private String remark ;
    /** 矿井一对多 */
    @ManyToOne
    @JoinColumn(name = "MaintainMine_id")
    private MaintainMine mine ;
    /** 采区一对多 */
    @ManyToOne
    @JoinColumn(name = "area_id")
    private Area area;
    /**工作面一对多关系*/
    @ManyToOne
    @JoinColumn(name = "section_id")
    private Section section;
    /** 删除状态 */
    private Integer deleteFlag ;
    /** 创建人 */
    private String createdBy ;
    /** 创建时间 */
    @CreatedDate
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Column(name = "created_time",updatable = false)
    private Date createdTime ;
    /** 更新人 */
    private String updatedBy ;
    /** 更新时间 */
    @LastModifiedDate
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Column(name = "updated_time",insertable = false)
    private Date updatedTime ;
}
